using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace AppManagement.MainManagers
{
	#region using
	using DevComponents.DotNetBar;
	using AppManagement.Models;
	using AppManagement.Repositories;
	using AppManagement.Helpers;
	using AppManagement.UsersManager;
	using System.Data;
	using System.Drawing;
	using System.IO;
	#endregion

	public partial class FrmQuanLyPHIEUYEUCAU : Office2007Form
	{
		public EventHandler Handler { get; set; }

		public FrmQuanLyPHIEUYEUCAU()
		{
			InitializeComponent();
            if (GlobalVariables.g_CurrentUser.LOAINGUOIDUNG.TEN_LOAI_NGUOI_DUNG.ToUpper().Contains("NHÂN VIÊN CHI NHÁNH"))
            {
                btnXoa.Enabled = false;
            }
		}

		private void FrmQuanLyPHIEUYEUCAU_Load(object sender, EventArgs e)
		{
			InitGridView();
			LoadData();
			dtgvData.ClearSelection();
		}

		private void btnThem_Click(object sender, EventArgs e)
		{
            if (dtgvData.SelectedRows.Count > 0)
            {
                FrmChiTietPHIEUYEUCAU frm = new FrmChiTietPHIEUYEUCAU(int.Parse(dtgvData.SelectedRows[0].Cells["PHIEUYEUCAU_ID"].Value.ToString()));
                frm.Handler += LoadData;
                frm.ShowDialog();
            }
		}

		private void btnXoa_Click(object sender, EventArgs e)
		{
			if (dtgvData.SelectedRows.Count > 0)
			{
				if (MessageBoxEx.Show("Bạn có chắc chắn xóa dòng này không?", "Xóa", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
				{
					if (PHIEUYEUCAURepository.Delete(int.Parse(dtgvData.SelectedRows[0].Cells["PHIEUYEUCAU_ID"].ToString())))
					{
						MessageBoxEx.Show("Xóa dữ liệu thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
						LoadData();
					}
					else
					{
						MessageBoxEx.Show("Xóa dữ liệu thất bại", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
					}
				}
			}
		}

		private void btnCapNhat_Click(object sender, EventArgs e)
		{
			if (dtgvData.SelectedRows.Count > 0)
			{
				FrmLapPHIEUYEUCAU frm = new FrmLapPHIEUYEUCAU(int.Parse(dtgvData.SelectedRows[0].Cells["PHIEUYEUCAU_ID"].ToString()));
				frm.Handler += LoadData;
				frm.ShowDialog();
			}
		}

		private void btnThoat_Click(object sender, EventArgs e)
		{
			this.Close();
		}

		private void InitGridView()
		{
			DataGridViewTextBoxColumn objColumn = new DataGridViewTextBoxColumn
			{
				HeaderText = "ID Phiếu yêu cầu",
				DataPropertyName = "PHIEUYEUCAU_ID",
				Name = "PHIEUYEUCAU_ID",
				Width = (int)((dtgvData.Width - dtgvData.RowHeadersWidth)*((double)1/6))
			};
			dtgvData.Columns.Add(objColumn);

            objColumn = new DataGridViewTextBoxColumn
            {
                HeaderText = "Chi nhánh",
                DataPropertyName = "CHINHANH",
                Name = "CHINHANH",
                Width = (int)((dtgvData.Width - dtgvData.RowHeadersWidth) * ((double)1 / 6))
            };
            dtgvData.Columns.Add(objColumn);

			objColumn = new DataGridViewTextBoxColumn
			{
				HeaderText = "Nhân viên lập phiếu",
				DataPropertyName = "NHANVIEN_YEUCAU",
				Name = "NHANVIEN_YEUCAU",
				Width = (int)((dtgvData.Width - dtgvData.RowHeadersWidth)*((double)1/6))
			};
			dtgvData.Columns.Add(objColumn);

			objColumn = new DataGridViewTextBoxColumn
			{
				HeaderText = "Ngày yêu cầu",
				DataPropertyName = "NGAY_YEU_CAU",
				Name = "NGAY_YEU_CAU",
				Width = (int)((dtgvData.Width - dtgvData.RowHeadersWidth)*((double)1/6))
			};
			dtgvData.Columns.Add(objColumn);

            var objCkbxColumn = new DataGridViewCheckBoxColumn
            {
                HeaderText = "Đang xử lý",
                DataPropertyName = "DANG_XU_LY",
                Name = "DANG_XU_LY",
                Width = (int)((dtgvData.Width - dtgvData.RowHeadersWidth) * ((double)1 / 6))
            };
            dtgvData.Columns.Add(objCkbxColumn);

            objCkbxColumn = new DataGridViewCheckBoxColumn
            {
                HeaderText = "Đã xử lý",
                DataPropertyName = "DA_XU_LY",
                Name = "DA_XU_LY",
                Width = (int)((dtgvData.Width - dtgvData.RowHeadersWidth) * ((double)1 / 6)) - 1
            };
            dtgvData.Columns.Add(objCkbxColumn);
		}

		private void LoadData(object sender, EventArgs e)
		{
			LoadData();
		}

		private void LoadData()
		{
			var lstItem = PHIEUYEUCAURepository.SelectAll();
			var dt = new DataTable();
			dt.Columns.Add("PHIEUYEUCAU_ID");
            dt.Columns.Add("CHINHANH");
			dt.Columns.Add("NHANVIEN_YEUCAU");
			dt.Columns.Add("NGAY_YEU_CAU");
            dt.Columns.Add("DANG_XU_LY");
            dt.Columns.Add("DA_XU_LY");
			for (int i = 0; i < lstItem.Count; i++)
			{
                dt.Rows.Add(lstItem[i].PHIEUYEUCAU_ID, lstItem[i].CHINHANH.TEN_CHI_NHANH, lstItem[i].NHANVIEN_CHINHANH.NGUOIDUNG.TEN_NGUOI_DUNG, String.Format("{0:dd/MM/yyyy}", lstItem[i].NGAY_YEU_CAU), lstItem[i].DANG_XU_LY.Value, lstItem[i].DA_XU_LY.Value);
			}
			DataView objTimeSheetDV = new System.Data.DataView(dt);
			objTimeSheetDV.AllowNew = false;
			dtgvData.AutoGenerateColumns = false;
			dtgvData.DataSource = objTimeSheetDV;
			dtgvData.ClearSelection();
		}

		private void dtgvData_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
		{
			if (dtgvData.SelectedRows.Count > 0)
			{
                FrmChiTietPHIEUYEUCAU frm = new FrmChiTietPHIEUYEUCAU(int.Parse(dtgvData.SelectedRows[0].Cells["PHIEUYEUCAU_ID"].Value.ToString()));
                frm.Handler += LoadData;
				frm.ShowDialog();
			}
		}
	}
}
